Programmable integrated circuits (ICs), such as field programmable gate arrays (FPGAs), typically include rows and columns of programmable logic circuits and programmable interconnect resources. Each programmable logic circuit may include one or more registers and one or more lookup table (LUT) circuits. A programmable IC may also include other types of circuits interspersed between the programmable logic circuits, such as digital signal processing (DSP) circuits and memory circuits. The programmable logic circuits and the programmable interconnect resources are configured by configuration bits to implement a user design.
A programmable integrated circuit (IC) is tested after manufacturing to screen for any defects. When a defect is detected on a programmable IC, a failed row of programmable logic circuits is replaced with an extra redundant row of programmable logic circuits. A test algorithm for repairing failing resources in a programmable IC may involve reading out values stored in registers in the IC and identifying any failing row by performing a per test configuration mapping table lookup to compare the values stored in the registers to expected values.